﻿using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Imgur.Net;

namespace GurLoader.Service.ImgurTaskBuilder
{
    /// <summary>
    ///     Contains methods which create tasks to execute specific actions against the Imgur image hosting site.
    ///     These tasks can then be run by the caller at will in order to begin execution.
    /// </summary>
    public interface ITaskBuilderService
    {
        Task<ImgurProcessResult> UploadAlbum(IEnumerable<ImageContent> images, string title, string description, LayoutStyle layoutStyle, IProgress<IDelegatingCommandProgress> progress,
            CancellationToken cancellationToken, bool disposeImages, IDispatcher dispatcher, bool openWhenComplete);

        Task<ImgurProcessResult> UploadImages(IEnumerable<ImageContent> images, IProgress<IDelegatingCommandProgress> progress,
            CancellationToken cancellationToken, bool disposeImages, IDispatcher dispatcher, bool openWhenComplete);
    }
}